package com.mazaiting.redeye.dao;

import com.mazaiting.redeye.domain.UserBean;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.data.repository.Repository;

/***
 *
 *
 *                                                    __----~~~~~~~~~~~------___
 *                                   .  .   ~~//====......          __--~ ~~
 *                   -.            \_|//     |||\\  ~~~~~~::::... /~
 *                ___-==_       _-~o~  \/    |||  \\            _/~~-
 *        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
 *    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
 *  .~       .~       |   \\ -_    /  /-   /   ||      \   /
 * /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
 * |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
 *          '         ~-|      /|    |-~\~~       __--~~
 *                      |-~~-_/ |    |   ~\_   _-~            /\
 *                           /  \     \__   \/~                \__
 *                       _--~ _/ | .-~~____--~-/                  ~~==.
 *                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
 *                                 -_     ~\      ~~---l__i__i__i--~~_/
 *                                 _-~-__   ~)  \--______________--~~
 *                               //.-~~~-~_--~- |-------~~~~~~~~
 *                                      //.-~~~--\
 *                               神兽保佑
 *                              代码无BUG!
 * @author mazaiting
 * @date 2019-06-19
 * @decription
 *  用户数据库 DAO
 *  要为Dao层接口上面添加一个@Mapper注解。
 *  与springbootApplication中的@MapperScan二选一写上即可
 */
@Mapper
public interface UserDao extends Repository<UserBean, Integer> {

    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 用户名, 密码
     */
    UserBean queryUserByName(String username);

    /**
     * 根据用户名查询用户信息
     * @param username 用户名
     * @return 用户名, 手机号, 地理位置, 头像链接, 创建日期, 创建时间
     */
    UserBean queryUserInfoByName(String username);

    /**
     * 保存用户
     * @param user 用户
     * @return 返回插入的行数
     */
    int addUser(UserBean user);

    /**
     * 更新用户信息
     * @param user 用户信息
     * @return 修改行号
     */
    int updateUser(UserBean user);
}
